/* eslint-disable */
export class UrlHelper {
  // 获取url的各种信息
  static urlInfo(url) {
    let a = document.createElement('a');
    a.href = url;
    return {
      source: url,
      protocol: a.protocol.replace(':', ''),
      host: a.hostname,
      port: a.port,
      search: a.search,
      params: (function() {
        var ret = {},
          seg = a.search.replace(/^\?/, '').split('&'),
          len = seg.length,
          i = 0,
          s;
        for (; i < len; i++) {
          if (!seg[i]) {
            continue;
          }
          s = seg[i].split('=');
          ret[s[0]] = s[1];
        }
        return ret;
      })(),
      file: (a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
      hash: a.hash.replace('#', ''),
      path: a.pathname.replace(/^([^\/])/, '/$1'),
      relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [, ''])[1],
      segments: a.pathname.replace(/^\//, '').split('/'),
    };
  }

  // 取得URL的参数，以对象形式返回
  static getParams(url) {
    var result = {};
    var param = /([^?=&]+)=([^&]+)/gi;
    var match;
    while ((match = param.exec(url)) !== null) {
      result[match[1]] = match[2];
    }
    return result;
  }
}
